﻿
Imports BU
Imports DAL

Public Class UcQuotationDetails

    Private _dsQuotationDetails As DataSet
    Private _gQuotationGuid As Guid

    Private _listOfUpdateRecords As List(Of spQuotationDetailsType)
    Private _listOfNewRecords As List(Of spQuotationDetailsType)
    Private _listOfDeleteRecords As New List(Of Guid)

    ''' <summary>
    ''' PROCEDURE - Liên kết dữ liệu QuotationDetails với Grid
    ''' </summary>
    ''' <param name="rowGuidQuotation">RowGuid tham chiếu của Quotation</param>
    Private Sub ReflectQuotationDetailsToGrid(ByVal rowGuidQuotation As Guid)

        _dsQuotationDetails = New DataSet()

        Dim obuQuotationDetails As New BuQuotationDetails
        _gQuotationGuid = rowGuidQuotation

        'Đưa DataTable của QuotationDetails vào
        _dsQuotationDetails = obuQuotationDetails.GetQuotationDetailsInDataSet(_gQuotationGuid)

        'Liên kết DataSet với Grid
        grdQuotationDetails.DataSource = _dsQuotationDetails

        'Ẩn cột CAT.No. ở Band(0)
        grdQuotationDetails.DisplayLayout.Bands(0).Columns(1).Hidden = True
        'Ẩn cột RowGuidQuotationDetails ở Band(0)
        grdQuotationDetails.DisplayLayout.Bands(0).Columns(2).Hidden = True
        'Ẩn cột RowGuidQuotationDetails ở Band(1)
        grdQuotationDetails.DisplayLayout.Bands(1).Columns(3).Hidden = True

    End Sub


    ''' <summary>
    ''' PROCEDURE - Truy vấn chi tiết báo giá khi được chỉ định Mã tham chiếu và ánh xạ lên các Controls
    ''' </summary>
    ''' <param name="rowGuidQuotation">Mã tham chiếu của Quotation</param>
    ''' <param name="sContact">Nhân viên liên hệ</param>
    ''' <param name="sCustomer">Tên công ty</param>
    ''' <param name="sAddress">Địa chỉ</param>
    ''' <param name="sEmployee">Nhân viên phụ trách</param>
    ''' <param name="dtCreatedDate">Ngày lập báo giá</param>
    ''' <param name="sQuotationId">Mã báo giá</param>
    ''' <param name="sRevision">Lần điều chỉnh Rev.</param>
    ''' <param name="sPriceListVersion">Phiên bản giá</param>
    ''' <param name="sSprNumber">Số SPR</param>
    ''' <param name="iCurrencyRate">Tỷ giá ngoại tệ</param>
    Public Sub ViewQuotationDetails(ByVal rowGuidQuotation As Guid, ByVal sContact As String, ByVal sCustomer As String,
                                    ByVal sAddress As String, ByVal sEmployee As String, ByVal dtCreatedDate As DateTime,
                                    ByVal sQuotationId As String, ByVal sRevision As String,
                                    ByVal sPriceListVersion As String,
                                    ByVal sSprNumber As String, ByVal iCurrencyRate As UInt16)

        ReflectQuotationDetailsToGrid(rowGuidQuotation)

        'Hiển thị thông tin Quotation lên các Controls
        lblCustomer.Text = sCustomer.ToUpper()
        lblContact.Text = sContact
        lblAddress.Text = sAddress
        lblEmployee.Text = sEmployee

        'FUNC: Kỹ thuật định dạng String
        lblCreatedDate.Text = dtCreatedDate.ToString("dd/MM/yyyy")
        lblQuotationId.Text = sQuotationId
        lblRevision.Text = sRevision & ".0"
        lblPriceListVersion.Text = sPriceListVersion
        lblSPRNumber.Text = IIf(String.IsNullOrWhiteSpace(sSprNumber), "Không có", sSprNumber)
        lblCurrencyRate.Text = iCurrencyRate.ToString("0,0") & " ₫"
    End Sub


    ''' <summary>
    ''' EVENT - btnEditDetails_Click
    ''' </summary>
    Private Sub btnEditDetails_Click(sender As Object, e As EventArgs) Handles btnEditDetails.Click

        Dim obuQuotationDetails As New BuQuotationDetails

        Dim frm As New FQuotationDataInput(obuQuotationDetails.GetQuotationDetailsInList(_gQuotationGuid))

        frm.ShowDialog()

        ' Làm mới các mảng chứa dữ liệu chỉnh sửa
        _listOfUpdateRecords = New List(Of spQuotationDetailsType)
        _listOfDeleteRecords = New List(Of Guid)
        _listOfNewRecords = New List(Of spQuotationDetailsType)

        ' Lấy kết quả trả về sau khi người dùng chỉnh sửa
        _listOfUpdateRecords = frm.GetUpdateRecords
        _listOfDeleteRecords = frm.GetDeleteRecords
        _listOfNewRecords = frm.GetNewRecords

        'Hủy đối tượng frm
        frm.Dispose()

    End Sub
End Class
